home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / distutils / file_util.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  5KB  |  202 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. __revision__ = '$Id: file_util.py 37828 2004-11-10 22:23:15Z loewis $'
  5. import os
  6. from distutils.errors import DistutilsFileError
  7. from distutils import log
  8. _copy_action = {
  9.     None: 'copying',
  10.     'hard': 'hard linking',
  11.     'sym': 'symbolically linking' }
  12.  
  13. def _copy_file_contents(src, dst, buffer_size = 16384):
  14.     fsrc = None
  15.     fdst = None
  16.     
  17.     try:
  18.         fsrc = open(src, 'rb')
  19.     except os.error:
  20.         (errno, errstr) = None
  21.         raise DistutilsFileError, "could not open '%s': %s" % (src, errstr)
  22.     
  23.  
  24.     if os.path.exists(dst):
  25.         
  26.         try:
  27.             os.unlink(dst)
  28.         except os.error:
  29.             (errno, errstr) = None
  30.             raise DistutilsFileError, "could not delete '%s': %s" % (dst, errstr)
  31.         except:
  32.             None<EXCEPTION MATCH>os.error
  33.         
  34.  
  35.     None<EXCEPTION MATCH>os.error
  36.     
  37.     try:
  38.         fdst = open(dst, 'wb')
  39.     except os.error:
  40.         (errno, errstr) = None
  41.         raise DistutilsFileError, "could not create '%s': %s" % (dst, errstr)
  42.  
  43.     while None:
  44.         
  45.         try:
  46.             buf = fsrc.read(buffer_size)
  47.         except os.error:
  48.             (errno, errstr) = None
  49.             raise DistutilsFileError, "could not read from '%s': %s" % (src, errstr)
  50.  
  51.         if not buf:
  52.             break
  53.         
  54.         
  55.         try:
  56.             fdst.write(buf)
  57.         continue
  58.         except os.error:
  59.             (errno, errstr) = None
  60.             raise DistutilsFileError, "could not write to '%s': %s" % (dst, errstr)
  61.             continue
  62.         
  63.  
  64.     if fsrc:
  65.         fsrc.close()
  66.     
  67.  
  68.  
  69. def copy_file(src, dst, preserve_mode = 1, preserve_times = 1, update = 0, link = None, verbose = 0, dry_run = 0):
  70.     newer = newer
  71.     import distutils.dep_util
  72.     ST_ATIME = ST_ATIME
  73.     ST_MTIME = ST_MTIME
  74.     ST_MODE = ST_MODE
  75.     S_IMODE = S_IMODE
  76.     import stat
  77.     if not os.path.isfile(src):
  78.         raise DistutilsFileError, "can't copy '%s': doesn't exist or not a regular file" % src
  79.     
  80.     if os.path.isdir(dst):
  81.         dir = dst
  82.         dst = os.path.join(dst, os.path.basename(src))
  83.     else:
  84.         dir = os.path.dirname(dst)
  85.     if update and not newer(src, dst):
  86.         log.debug('not copying %s (output up-to-date)', src)
  87.         return (dst, 0)
  88.     
  89.     
  90.     try:
  91.         action = _copy_action[link]
  92.     except KeyError:
  93.         raise ValueError, "invalid value '%s' for 'link' argument" % link
  94.  
  95.     if os.path.basename(dst) == os.path.basename(src):
  96.         log.info('%s %s -> %s', action, src, dir)
  97.     else:
  98.         log.info('%s %s -> %s', action, src, dst)
  99.     if dry_run:
  100.         return (dst, 1)
  101.     
  102.     if os.name == 'mac':
  103.         import macostools as macostools
  104.         
  105.         try:
  106.             macostools.copy(src, dst, 0, preserve_times)
  107.         except os.error:
  108.             exc = None
  109.             raise DistutilsFileError, "could not copy '%s' to '%s': %s" % (src, dst, exc[-1])
  110.         except:
  111.             None<EXCEPTION MATCH>os.error
  112.         
  113.  
  114.     None<EXCEPTION MATCH>os.error
  115.     if link == 'hard':
  116.         if not os.path.exists(dst) and os.path.samefile(src, dst):
  117.             os.link(src, dst)
  118.         
  119.     elif link == 'sym':
  120.         if not os.path.exists(dst) and os.path.samefile(src, dst):
  121.             os.symlink(src, dst)
  122.         
  123.     else:
  124.         _copy_file_contents(src, dst)
  125.         if preserve_mode or preserve_times:
  126.             st = os.stat(src)
  127.             if preserve_times:
  128.                 os.utime(dst, (st[ST_ATIME], st[ST_MTIME]))
  129.             
  130.             if preserve_mode:
  131.                 os.chmod(dst, S_IMODE(st[ST_MODE]))
  132.             
  133.         
  134.     return (dst, 1)
  135.  
  136.  
  137. def move_file(src, dst, verbose = 0, dry_run = 0):
  138.     exists = exists
  139.     isfile = isfile
  140.     isdir = isdir
  141.     basename = basename
  142.     dirname = dirname
  143.     import os.path
  144.     import errno
  145.     log.info('moving %s -> %s', src, dst)
  146.     if dry_run:
  147.         return dst
  148.     
  149.     if not isfile(src):
  150.         raise DistutilsFileError, "can't move '%s': not a regular file" % src
  151.     
  152.     if isdir(dst):
  153.         dst = os.path.join(dst, basename(src))
  154.     elif exists(dst):
  155.         raise DistutilsFileError, "can't move '%s': destination '%s' already exists" % (src, dst)
  156.     
  157.     if not isdir(dirname(dst)):
  158.         raise DistutilsFileError, "can't move '%s': destination '%s' not a valid path" % (src, dst)
  159.     
  160.     copy_it = 0
  161.     
  162.     try:
  163.         os.rename(src, dst)
  164.     except os.error:
  165.         (num, msg) = None
  166.         if num == errno.EXDEV:
  167.             copy_it = 1
  168.         else:
  169.             raise DistutilsFileError, "couldn't move '%s' to '%s': %s" % (src, dst, msg)
  170.     except:
  171.         num == errno.EXDEV
  172.  
  173.     if copy_it:
  174.         copy_file(src, dst)
  175.         
  176.         try:
  177.             os.unlink(src)
  178.         except os.error:
  179.             (num, msg) = None
  180.             
  181.             try:
  182.                 os.unlink(dst)
  183.             except os.error:
  184.                 pass
  185.  
  186.             raise DistutilsFileError, ("couldn't move '%s' to '%s' by copy/delete: " + "delete '%s' failed: %s") % (src, dst, src, msg)
  187.         except:
  188.             None<EXCEPTION MATCH>os.error
  189.         
  190.  
  191.     None<EXCEPTION MATCH>os.error
  192.     return dst
  193.  
  194.  
  195. def write_file(filename, contents):
  196.     f = open(filename, 'w')
  197.     for line in contents:
  198.         f.write(line + '\n')
  199.     
  200.     f.close()
  201.  
  202.